package com.zxjbyte.yiyi.framework.oss.storage;

import cn.hutool.core.io.FileUtil;
import cn.hutool.core.util.StrUtil;
import com.zxjbyte.yiyi.framework.common.constant.Constant;
import com.zxjbyte.yiyi.framework.oss.publisher.OssRecordPublisher;

/**
 * @Author zhangxingjia
 * @Date 2023/6/20 15:00
 * @Version: 1.0
 */
public abstract class AbstractOssTemplate {

    /**
     * 格式化文件的URL访问地址
     *
     * 用于存储器为：DB，LOCAL，通过OssController的getFile接口来获取文件内容
     * @param domain 自定义域名
     * @param path 文件路径
     * @return 访问地址
     */
    protected String formatGetFileUrl(String domain, String path){
        return StrUtil.format("{}" + Constant.BASE_PATH_B + "/system/oss/get/{}", domain, path);
    }

    /**
     * 推送Oss存储日志记录
     * @param result 上传文件结果
     */
    protected void ossRecordAddPublish(OssPutResult result, long size, String storageService){
        OssRecordPublisher.publishAddEvent(result, FileUtil.readableFileSize(size), storageService);
    }

    /**
     * 推送oss存储日志删除事件
     * @param path
     */
    protected void ossRecordDeletePublish(String path){
        OssRecordPublisher.publishDeleteEvent(path);
    }
}
